package com.wjn.basic.thread.threadpool.zdypool;


import java.sql.Time;
import java.util.concurrent.*;

/**
 * 自定义线程池
 */
public class ZdyThreadPoolDemo {
//    new ThreadPoolExecutor(
//            int corePollSize, 核心线程数（初始化的）
//            int maximumPoolSize, 最大线程数量
//        long keepAliveTime, 线程空闲时间（活着的时间）
//                    TimeUnit unit, 单位
//                    BlockingQueue<Runnable> workQueue, 等待线程放的容器
//                    ThreadFactory threadFactory,
//            RejectedExecutionHandler handler 拒绝执行任务
//    ){}

    public static void main(String[] args) {

        BlockingQueue<Runnable> workQueue=new LinkedBlockingQueue<>(5);//执行任务的队列
        ExecutorService ex = new ThreadPoolExecutor(
                3,       //核心线程数
                20,  //最大线程数量
                20,    //线程活着的时间
                TimeUnit.SECONDS,   //单位
                workQueue,        //工作队列
                new MyThreadFactory(), //
                new RejectedExecutionHandlerImpl());    //
        for(int i=0;i<20;i++){
            ex.execute(new MyRunnable("n"+i));
        }
    }


}
